CREATE TABLE [dbo].[AccessItem]
(
[AccessKey] [uniqueidentifier] NOT NULL,
[Grantee] [uniqueidentifier] NOT NULL,
[Permission] [int] NOT NULL CONSTRAINT [DF_AccessItem_Permission] DEFAULT ((0)),
[GroupKey] [uniqueidentifier] NULL,
[RoleKey] [uniqueidentifier] NULL,
[UserKey] [uniqueidentifier] NULL,
[MarkedForDeleteOn] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[AccessItem] ADD CONSTRAINT [PK_AccessItem] PRIMARY KEY CLUSTERED ([AccessKey], [Grantee]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_AccessItem_AccessKey_Permission_Grantee] ON [dbo].[AccessItem] ([AccessKey], [Permission], [Grantee]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [AK_AccessItem_GroupKey] ON [dbo].[AccessItem] ([GroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_AccessItem_RoleKey] ON [dbo].[AccessItem] ([RoleKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_AccessItem_UserKey] ON [dbo].[AccessItem] ([UserKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[AccessItem] ADD CONSTRAINT [FK_AccessItem_AccessMain] FOREIGN KEY ([AccessKey]) REFERENCES [dbo].[AccessMain] ([AccessKey])
GO
ALTER TABLE [dbo].[AccessItem] ADD CONSTRAINT [FK_AccessItem_GroupMain] FOREIGN KEY ([GroupKey]) REFERENCES [dbo].[GroupMain] ([GroupKey])
GO
ALTER TABLE [dbo].[AccessItem] ADD CONSTRAINT [FK_AccessItem_RoleMain] FOREIGN KEY ([RoleKey]) REFERENCES [dbo].[RoleMain] ([RoleKey])
GO
ALTER TABLE [dbo].[AccessItem] ADD CONSTRAINT [FK_AccessItem_UserMain] FOREIGN KEY ([UserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
GRANT SELECT ON [dbo].[AccessItem] TO [IMIS]
GO